home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / Sessions / STL / Slides / STL5.cp < prev    next >
Text File  |  1998-06-15  |  1KB  |  49 lines

  1. // STL5.cp
  2. #include <iostream>
  3. #include <map>
  4. using namespace std;
  5. int main()
  6. {
  7.     int    integers[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  8.     char *intNames[] = {"zero", "one", "two", "three",
  9.                         "four", "five", "six", "seven",
  10.                         "eight", "nine", "ten"};
  11.     typedef    map<int, char *> MyMap;
  12.     typedef    vector<int> MyVector;
  13.     MyMap    m;
  14.     for (int i = 0; i < 11; ++i)
  15.     {
  16.         m.insert(MyMap::value_type(integers[i], intNames[i]));
  17.     }
  18.     MyVector lhs(integers, integers + 11), rhs(integers, integers + 11);
  19.     random_shuffle(lhs.begin(), lhs.end());
  20.     random_shuffle(rhs.begin(), rhs.end());
  21.     for (int j = 0; j < 11; ++j)
  22.     {
  23.         int sum = lhs[j] + rhs[j];
  24.         int diff = lhs[j] - rhs[j];
  25.         if (sum < 11)
  26.         {
  27.             cout << m[lhs[j]] << " + " << m[rhs[j]] <<
  28.                     " = " << m[sum] << endl;
  29.         }
  30.         if (diff >= 0)
  31.         {
  32.             cout << m[lhs[j]] << " - " << m[rhs[j]] <<
  33.                     " = " << m[diff] << endl;
  34.         }
  35.     }
  36. }
  37. // two + zero = two
  38. // two - zero = two
  39. // eight - five = three
  40. // nine + one = ten
  41. // nine - one = eight
  42. // three + two = five
  43. // three - two = one
  44. // one + four = five
  45. // ten - ten = zero
  46. // zero + seven = seven
  47. // seven + three = ten
  48. // seven - three = four
  49.